package de.codecentric.moviedatabase.navigation.controller;
import static de.codecentric.roca.core.LinkBuilder.linkTo;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@RequestMapping("/navigation")
public class NavigationController{
private String moviesBaseUrl;
private String actorsBaseUrl;
private String shopBaseUrl;
public NavigationController(String moviesBaseUrl, String actorsBaseUrl, String shopBaseUrl) {
this.moviesBaseUrl = moviesBaseUrl;
this.actorsBaseUrl = actorsBaseUrl;
this.shopBaseUrl = shopBaseUrl;
}
@RequestMapping(method = RequestMethod.GET)
public String getNavigation(Model model, @RequestParam String searchUrl, @RequestParam String active, @RequestParam(required = false) String searchString) {
NavigationResource navResource = new NavigationResource(active, searchString != null?searchString:"");
navResource.add(linkTo(moviesBaseUrl).path(NavPathFragment.MOVIES).withRel(NavRelation.MOVIES));
navResource.add(linkTo(shopBaseUrl).withRel(NavRelation.SHOP));
navResource.add(linkTo(actorsBaseUrl).path(NavPathFragment.ACTORS).withRel(NavRelation.ACTORS));
navResource.add(linkTo(moviesBaseUrl).path(NavPathFragment.LOGOUT).withRel(NavRelation.LOGOUT));
navResource.add(linkTo(searchUrl).withRel(NavRelation.SEARCH));
model.addAttribute("navResource", navResource);
return "navigation/navigation";
}
}